<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
    <script type="text/javascript">
        // 同步
        // const p = new Promise((resolve, reject) => {

        // })
        // 异步
        // p.then((res)=>{

        // })

        //异步
        // $.ajax({
        //     url: './data.json',
        //     success: function (data) {
        //         console.log(getName(data));
        //     }
        // })
        // console.log('同步执行代码');
        // function getName(data) {
        //     return data.map(item => {
        //         return item.name;
        //     })
        // }

        // Promise的是异步问题同步化解决方案,不是解决回调地域的
        /* const p = new Promise((resolve, reject) => {
            $.ajax({
                url: './data.json',
                success: function (data) {
                    resolve(data)
                }
            })
        })
        p.then((res) => {
            console.log(getName(res));
        })
        console.log('同步执行代码');

        function getName(data) {
            return data.map(item => {
                return item.name;
            })
        } */
        // 解决回调地狱
        function getData() {
            return new Promise((resolve, reject) => {
                $.ajax({
                    url:'./data.json',
                    success: function (data) {
                        resolve(data);
                    }
                })
            })
        }
        doSth();
        async function doSth(){
            const data = await getData()
            console.log(getName(data));
        }
        console.log('同步执行代码');

        function getName(data){
            return data.map(item => {
                return item.name;
            })
        }

    </script>
</body>

</html>